package main

import (
	"fmt"
	"os"
	"path/filepath"
)

func check(e error) {
	if e != nil {
		panic(e)
	}
}

func main() {
	//createTemp函数会创建并打开文件，我们可以对文件进行读写
	//函数第一个参数传"",os.CreateTemp会在操作系统的默认位置下创建该文件
	f, err := os.CreateTemp("", "sample")
	check(err)

	fmt.Println("Temp fiile name :", f.Name())

	defer os.Remove(f.Name())

	_, err = f.Write([]byte{1, 2, 3, 4})
	check(err)

	//os.MkdirTemp 的参数与 CreateTemp 相同，
	//但是它返回的是一个 目录名 ，而不是一个打开的文件
	dname, err := os.MkdirTemp("", "sampledir")
	fmt.Println("Temp dir name :", dname)

	defer os.RemoveAll(dname)

	//通过拼接临时目录和临时文件合成完整的临时文件路径，并写入数据
	fname := filepath.Join(dname, "file1")
	err = os.WriteFile(fname, []byte{1, 2}, 0666)
	check(err)
	fmt.Println("fname is :", fname)
}
